﻿using System.Windows;
using System.Windows.Controls;
using LiveTiss.Schemas;
using LiveTiss.Classes;

namespace LiveTiss.Guias
{
    public partial class GuiaSolicitacaoOdonto : UserControl
    {
        #region Guia

        public ct_guiaSolicitacaoOdonto Guia
        {
            get { return (ct_guiaSolicitacaoOdonto)GetValue(GuiaProperty); }
            set { SetValue(GuiaProperty, value); }
        }

        public static readonly DependencyProperty GuiaProperty =
            DependencyProperty.Register("Guia", typeof(ct_guiaSolicitacaoOdonto), typeof(GuiaSolicitacaoOdonto), new PropertyMetadata(null));

        #endregion

        public GuiaSolicitacaoOdonto()
        {
            this.DataContext = this;
            if (this.Guia == null)
            {
                this.Guia = new ct_guiaSolicitacaoOdonto()
                {
                    cabecalhoGuia = new ct_cabecalhoGuiaOdonto()
                    {
                        numeroGuiaOperadora = string.Empty,
                        numeroGuiaPrestador = string.Empty,
                        dataEmissaoGuia = Util.EmptyDate,
                        identificacaoFontePagadora = new ct_cabecalhoGuiaOdontoIdentificacaoFontePagadora()
                        {
                            ItemValue = string.Empty,
                            ItemElementName = ItemChoiceType6.cnpjFontePagadora
                        }
                    },
                    dadosBeneficiario = new ct_guiaSolicitacaoOdontoDadosBeneficiario()
                    {
                        identificadorBeneficiario = new byte[] { },
                        nomeBeneficiario = string.Empty,
                        nomeEmpresa = string.Empty,
                        nomePlano = string.Empty,
                        nomeTitular = string.Empty,
                        numeroCarteira = string.Empty,
                        numeroCNS = string.Empty,
                        numeroTelefone = string.Empty,
                        validadeCarteira = Util.EmptyDate,
                        validadeCarteiraSpecified = false
                    },
                    dadosSolicitante = new ct_guiaSolicitacaoOdontoDadosSolicitante()
                    {
                        dadosContratado = new ct_guiaSolicitacaoOdontoDadosSolicitanteDadosContratado()
                        {
                            conselhoProfissional = new ct_conselhoProfissional()
                            {
                                numeroConselho = string.Empty,
                                siglaConselho = st_conselhoProfissional.CRAS,
                                ufConselho = st_UF.RS
                            },
                            enderecoContratado = new ct_endereco()
                            {
                                cep = string.Empty,
                                codigoIBGEMunicipio = string.Empty,
                                codigoUF = st_UF.AC,
                                complemento = string.Empty,
                                logradouro = string.Empty,
                                municipio = string.Empty,
                                numero = string.Empty,
                                tipoLogradouro = st_tipoLogradouro.Item001
                            },
                            identificacao = new ct_identificacaoPrestadorExecutante()
                            {
                                ItemValue = string.Empty,
                                ItemElementName = ItemChoiceType.CNPJ
                            },
                            nomeContratado = string.Empty,
                            numeroCNES = string.Empty
                        },
                        dadosProfissional = new ct_guiaSolicitacaoOdontoDadosSolicitanteDadosProfissional()
                        {
                            codigoCBOS = st_CBOS.Item000000,
                            codigoCBOSSpecified = false,
                            conselhoProfissional = new ct_conselhoProfissional()
                            {
                                numeroConselho = string.Empty,
                                siglaConselho = st_conselhoProfissional.COREN,
                                ufConselho = st_UF.AC
                            },
                            nomeExecutante = string.Empty
                        }
                    },
                    dataTerminoTratamento = Util.EmptyDate,
                    dataTerminoTratamentoSpecified = false,
                    observacao = string.Empty,
                    planoTratamento = new System.Collections.Generic.List<ct_guiaSolicitacaoOdontoProcedimentoSolicitado>(
                         new ct_guiaSolicitacaoOdontoProcedimentoSolicitado[]{
                                new ct_guiaSolicitacaoOdontoProcedimentoSolicitado()
                                {
                                    denteRegiao = new ct_denteRegiao()
                                    {
                                           ItemValue = st_dente.Item11,
                                           ItemElementName = ItemChoiceType8.dente
                                    },
                                    face = string.Empty,
                                    franquiaCoparticipacao = 0,
                                    franquiaCoparticipacaoSpecified = true,
                                    procedimentoOdonto = new ct_tabela()
                                    {
                                        codigo = string.Empty,
                                        descricao = string.Empty,
                                        tipoTabela = st_tabela.Item00
                                    },
                                    quantidade = 0,
                                    quantidadeSpecified = true,
                                    quantidadeUS = 0,
                                    quantidadeUSSpecified = true,
                                    totalFranquiaCoparticipacao = 0,
                                    totalFranquiaCoparticipacaoSpecified = true,
                                    valor = 0,
                                    valorSpecified = true
                                }
                         }),
                    tipoAtendimento = st_atendimentoOdonto.Item1,
                    tipoAtendimentoSpecified = true
                };
            }
            InitializeComponent();
        }
    }
}
